#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define debug(x) cerr<<#x<<':'<<x<<endl
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e5+5;
int n,k;
int a[N];
int cnt[N],ans[N],res;
void add(int x){
    ans[cnt[x]]--;
    cnt[x]++;
    ans[cnt[x]]++;
}
void del(int x){
    ans[cnt[x]]--;
    cnt[x]--;
    ans[cnt[x]]++;
}
signed main(){
    freopen("reporter.in","r",stdin);
    freopen("reporter.out","w",stdout);
    cin>>n>>k;
    int mx=0;
    for(int i=1;i<=n;i++) cin>>a[i],mx=max(mx,a[i]);
    if(n<=1000){
        for(int l=1;l<=n;l++){
            for(int r=l;r<=n;r++){
                add(a[r]);
                int f=0;
                for(int i=1;i<=k;i++) f+=(ans[i]!=0);
                if(f==k) res++;
            }
            for(int r=l;r<=n;r++) del(a[r]);
        }
        cout<<res;
        return 0;
    }
    if(mx<=k){
        int len=k*(k+1)/2;
        for(int i=0;i<len;i++) add(a[i]);
        for(int l=1;l+len-1<=n;l++){
            int r=l+len-1;
            add(a[r]);
            del(a[l-1]);
            int f=0;
            for(int i=1;i<=k;i++) f+=(ans[i]!=0);
            if(f==k) res++;
        }
        cout<<res;
        return 0;
    }
    return 0;
}